import axios from '@/utils/http';
import base from './base';

export default {
  // 群组列表
  index(params) {
    return axios.get(
      `${base.sq}/groups`,
      {
        params: {
          type: params.type, // 特定类型
          product_id: params.spaceId,
          page: params.page,
        },
      },
    );
  },
  // 新建群组
  create(params) {
    return axios.post(
      `${base.sq}/groups`,
      {
        title: params.title,
        description: params.desc,
        join_condition: params.joinConditions,
        product_id: params.spaceId,
      },
    );
  },
  // 群组展示
  show(params) {
    return axios.get(
      `${base.sq}/groups/${params.groupId}`,
    );
  },
  // 更新群组
  update(params) {
    return axios.put(
      `${base.sq}/groups/${params.groupId}`,
      {
        title: params.title,
        description: params.desc,
      },
    );
  },
  // 删除群组
  delete(groupId) {
    return axios.delete(
      `${base.sq}/groups/${groupId}`,
    );
  },
  // 重置邀请key
  resetKey(params) {
    return axios.post(
      `${base.sq}/groups/${params.groupId}/set_key`,
    );
  },
  // 获取加入条件
  getJoinConditions(params) {
    return axios.get(
      `${base.sq}/groups/get_join_condition`,
      {
        params: {
          key: params.joinKey,
        },
      },
    );
  },
  // 加入群组
  join(params) {
    return axios.post(
      `${base.sq}/groups/join`,
      {
        key: params.joinKey,
        join_condition: params.conditions,
      },
    );
  },
  // 群组关联的问卷
  questionnaires(params) {
    return axios.get(
      `${base.sq}/groups/${params.groupId}/questionnaires`,
    );
  },
  // 群组保存关联空间设置
  settingRelatedSpaces(params) {
    return axios.post(
      `${base.sq}/group_products`,
      {
        group_id: params.groupId,
        product_ids: params.spacesIds,
      },
    );
  },
  // 群组关联的空间
  relatedSpaces(params) {
    return axios.get(
      `${base.sq}/group_products`,
      {
        params: {
          group_id: params.groupId,
        },
      },
    );
  },
  // 群组活跃信息
  activities(params) {
    if (params.daterange && params.daterange.length < 2) {
      console.warn('daterange 参数不正确');
    }
    return axios.get(
      `${base.sq}/groups/${params.groupId}/group_collections`,
      {
        params: {
          product_id: params.spaceId, // 关联的空间
          start_at: params.daterange[0] ? params.daterange[0].getTime() : undefined,
          end_at: params.daterange[1] ? params.daterange[1].getTime() : undefined,
        },
      },
    );
  },
  // 排名
  ranking(params) {
    if (params.daterange && params.daterange.length < 2) {
      console.warn('daterange 参数不正确');
    }
    return axios.get(
      `${base.sq}/groups/${params.groupId}/ranking`,
      {
        params: {
          product_id: params.spaceId,
          start_at: params.daterange[0] ? params.daterange[0].getTime() : undefined,
          end_at: params.daterange[1] ? params.daterange[1].getTime() : undefined,
          type: params.type, // 哪类排名
          page: params.page,
          per_number: params.number, // 每页数量
        },
      },
    );
  },
  // 获取最新内容
  recentItems(params) {
    return axios.get(
      `${base.sq}/groups/${params.groupId}/${params.type}`,
      {
        params: {
          page: params.page,
          per_number: params.number, // 每页数量
        },
      },
    );
  },
};
